import Vue from 'vue'
import storage from 'good-storage'

// 获取 和 设置本地存储
export function getLocalStorage (name, val) {
	if (val) {
		return storage.set(name, val)
	}
	return storage.get(name)
}

// 成功 msg
export function successMessage (str) {
	Vue.prototype.$Message.success(str)
}

// 失败 msg
export function errorMessage (str) {
	Vue.prototype.$Message.error(str)
}

// 成功 notice
export function successNotice (str) {
	Vue.prototype.$Notice.success({
		title: str
	})
}

// 失败 notice
export function errorNotice (str = '请') {
	Vue.prototype.$Notice.error({
		title: `${str}联系管理员！`
	})
}

// 深拷贝一个Object
export function cloneObj (obj) {
	if (typeof obj !== 'object') {
		return obj
	}
	var s = {}
	if (obj.constructor === Array) {
		s = []
	}
	for (var i in obj) {
		s[i] = cloneObj(obj[i])
	}
	return s
}

// 创建页面元素
export function createHtml (name) {
	return document.createElement(name)
}

// 获取  body的宽度
export function getBodyWidth (el) {
	return getWidth(document.getElementsByTagName('body')[0])
}

// 获取  body的高度
export function getBodyHeight (el) {
	return getHeight(document.getElementsByTagName('body')[0])
}

// 获取  元素的宽度
export function getWidth (el) {
	return el.clientWidth
}

// 获取  元素的高度
export function getHeight (el) {
	return el.clientHeight
}

// 获取className dom元素
export function getClassEls (className) {
	return document.getElementsByClassName(className)
}

// 截取字符串
export function spliceStr (start, end, str) {
	return str.substring(start, end)
}

let elementStyle = document.createElement('div').style

let vendor = (() => {
  let transformNames = {
    webkit: 'webkitTransform',
    Moz: 'MozTransform',
    O: 'OTransform',
    ms: 'msTransform',
    standard: 'transform'
  }

  for (let key in transformNames) {
    if (elementStyle[transformNames[key]] !== undefined) {
      return key
    }
  }

  return false
})()

// 行内样式兼容写法
export function prefixStyle (style) {
  if (vendor === false) {
    return false
  }

  if (vendor === 'standard') {
    return style
  }

  return `-${vendor}-${style}`
}
